home *** CD-ROM | disk | FTP | other *** search
- '
- '
- ' CRACK ART 'CA_UNPACK'
- '
- ' Dekompressionsroutine für CA?-Bilder
- '
- ' © Detlef Röttger & Jan Borchers 1989-91
- '
- '
- ' ## INLINE:
- ' $0000: 60 1a 00 00 01 00 00 00 00 00 00 00 00 00 00 00
- ' $0010: 00 00 00 00 00 00 00 00 00 00 00 00 48 e7 7f fe
- ' $0020: 4c ef 03 00 00 3c 24 49 47 e9 7d 00 42 47 42 46
- ' $0030: 1e 18 1c 18 30 18 c0 bc 00 00 7f ff 2a 40 12 06
- ' $0040: e1 49 12 06 34 01 48 41 32 02 24 01 26 01 28 01
- ' $0050: 2a 01 2c 4b 30 3c 06 3f 48 e6 7c 00 51 c8 ff fa
- ' $0060: 20 0d 53 40 6b 18 42 41 12 18 b2 07 67 16 14 81
- ' $0070: d5 cd b5 cb 6d f0 52 89 24 49 51 c8 ff ea 4c df
- ' $0080: 7f fe 4e 75 12 18 b2 07 67 e4 4a 01 66 1c 42 42
- ' $0090: 14 18 12 18 14 81 d5 cd b5 cb 6d 08 52 89 24 49
- ' $00a0: 53 40 6b da 51 ca ff ee 60 bc 0c 01 00 01 66 24
- ' $00b0: 42 42 42 43 16 18 e1 4b 14 18 d4 43 12 18 14 81
- ' $00c0: d5 cd b5 cb 6d 08 52 89 24 49 53 40 6b b0 51 ca
- ' $00d0: ff ee 60 92 0c 01 00 02 66 24 42 43 16 18 67 9e
- ' $00e0: e1 4b 42 42 14 18 d4 43 d5 cd b5 cb 6d 08 52 89
- ' $00f0: 24 49 53 40 6b 88 51 ca ff f0 60 00 ff 6a 42 42
- ' $0100: 14 18 14 82 d5 cd b5 cb 6d 0a 52 89 24 49 53 40
- ' $0110: 6b 00 ff 6c 51 c9 ff ec 60 00 ff 4c 00 00 00 00
- ' 288 Bytes.
- INLINE ca_unpack%,288
- '
- resolution&=XBIOS(4) ! Auflösung holen
- IF resolution&>2 ! keine ST-Auflösung
- END
- ENDIF
- '
- DO
- fpath$=CHR$(GEMDOS(25)+65)+":"+DIR$(0)+"\*.CA"+CHR$(resolution&+49)
- FILESELECT #"LOAD CA",fpath$,"",fname$ ! File auswählen
- CLS
- IF EXIST(fname$)=FALSE ! File nicht existent oder Abbruch
- END
- ENDIF
- '
- RESERVE 64000
- '
- OPEN "I",#1,fname$ ! File öffnen
- buffer%=MALLOC(LOF(#1)) ! Buffer reservieren
- CLOSE #1
- '
- IF buffer%<>0
- BLOAD fname$,buffer% ! Bild laden
- '
- IF DPEEK(buffer%)<>&H4341 ! 'CA'-Kennung checken
- PRINT "Kein CA-Bild! (Abbruch)"
- ELSE
- IF PEEK(buffer%+3)<>resolution& ! Auflösung checken
- PRINT "Falsche Auflösung! (Abbruch)"
- ELSE
- '
- SELECT resolution&
- CASE 0 ! Low Res
- ~XBIOS(6,L:buffer%+4) ! Farben setzen
- offset%=36 ! Image-Beginn
- CASE 1 ! Med Res
- ~XBIOS(6,L:buffer%+4)
- offset%=12
- CASE 2 ! High Res
- ' Monochrombilder besitzen keine Farbpalette
- offset%=4
- ENDSELECT
- '
- HIDEM
- IF PEEK(buffer%+2)=0 ! Bild ungepackt
- BMOVE buffer%+offset%,XBIOS(2),32000
- ELSE ! Bild gepackt
- ~C:ca_unpack%(L:buffer%+offset%,L:XBIOS(2)) ! Image Auspacken
- ENDIF
- SHOWM
- '
- ENDIF
- ENDIF
- '
- ~MFREE(buffer%) ! Speicher wieder freigeben
- ENDIF
- RESERVE
- '
- WHILE MOUSEK
- WEND
- REPEAT
- UNTIL MOUSEK
- LOOP
-